The present invention relates generally to synchronizing software components and, in particular, to synchronizing a user interface element displayed on a client and a software application component executing on a web server.
A servlet, which is a Java applet that runs on a web server, often improves portability of software. Because a servlet is a Java program, a servlet does not have to be recompiled for different operating systems. Web developers of highly interactive Hyper Text Markup Language (HTML) applications often utilize servlets for server-side web development. Dynamic web pages based on servlets can be transmitted between servers easily and can typically be integrated well with xe2x80x9cback-endxe2x80x9d applications (i.e., the part of an application executing on a server while another part of the application executes on a client computer).
When programming with servlets, application developers often use Java Beans to access databases or applications. The servlet could write HTML tags, text, and data to an output stream to present the results of the function completed by the Java Bean to the user viewing the web page. More specifically, programmers usually invoke a print statement, such as the Java method xe2x80x9cprintln( )xe2x80x9d, for each HTML line to present the results to the user. Because an application developer includes the HTML content of the web page within the software code, the application developer faces an arduous and time-consuming task for long HTML web pages. Additionally, the application developers generally have to make all content changes that the HTML content creators (i.e., HTML developers) want completed.
Java Server Pages (JSP) improve the separation between HTML developers and application developers. JSP enables an application developer to include pieces of Java code within the HTML web page, and the web server would automatically create a servlet from the web page. Therefore, application developers could include the HTML code without invoking a print statement, and HTML developers could make changes to the HTML. However, having HTML developers and application developers working on the same file can become unproductive and impractical for separate development. For example, while one application developer modifies a file, most other developers generally cannot concurrently modify the file and consequently have to wait until the application developer finishes the modifications. Furthermore, having two languages in one file (i.e., including Java code inside HTML) can create a file that is difficult to read.
Thus, there remains a need to enable a clear separation between the files developed by an HTML developer and an application developer.
The present invention relates to a method and apparatus for synchronizing a user interface element displayed on a client and a software application component executing on a web server. In one aspect, the invention relates to a method for synchronizing a user interface element and a software application component. The method includes the steps of representing a user interface element as a user interface element component having a characteristic and providing a wiring descriptor relating the characteristic of the user interface element component with a characteristic of a software application component. The method also includes the steps of executing the wiring descriptor to associate the user interface element component with the software application component and synchronizing the characteristic of the user interface element component with the characteristic of the software application component.
In one embodiment, the step of providing a wiring descriptor to relate the characteristic of the user interface element component with a characteristic of the software application component further includes identifying a fragment of a web page. In yet another embodiment, the step of providing a wiring descriptor further includes identifying an event to synchronize the characteristic of the user interface element component and the characteristic of the software application component.
In another aspect, the invention relates to an apparatus for synchronizing a user interface element displayed on a client and a software application component executing on a web server. The apparatus includes a user interface property module, a logic property module, and an event module. The user interface property module identifies a characteristic of a user interface element component. The logic property module identifies a characteristic of a software application component. The event module identifies an event to synchronize the characteristic of the user interface element object and the characteristic of the software application object when the event occurs.
In one embodiment, the apparatus also includes a database server that stores and manages data. In another embodiment, the apparatus includes a middleware server to consolidate requests and responses between the web server and the database server. In yet another embodiment, the apparatus includes a software design station that provides the user interface element. In another embodiment, the apparatus includes an application development system that provides the software application component. In another embodiment, the apparatus includes a connection module that specifies a dynamic user interface.